import random
import string
from enum import unique

from faker import Faker


faker = Faker('zh_CN')


class FakerUtils:
    @staticmethod
    def get_fake_name():
        return faker.name()

    @staticmethod
    def get_fake_bs():
        return faker.bs()

    @staticmethod
    def generate_ins_username(unique=True):
        # 随机生成前缀（2~4位字母，如 "ins", "usr", "bot" 等）
        prefix = ''.join(random.choices(string.ascii_lowercase, k=random.randint(2, 4)))
        # 生成一个看起来像真实人的用户名
        base = faker.user_name()  # e.g., john_doe89
        # 保证唯一性
        if unique:
            suffix = ''.join(random.choices(string.ascii_lowercase + string.digits, k=4))
            base = f"{base}_{suffix}"
        # 合成用户名，符合 Instagram 规则
        username = (prefix + "_" + base).lower().replace(" ", "_")[:30]
        return username